<?php

/**
 * ThunhapController
 * 
 * @author <admin888> Nguyễn tiến Pa Ven 
 * @version 1.0
 */

require_once 'Zend/Controller/Action.php';

class ThunhapController extends Zend_Controller_Action {
	protected $_uid = "null";
	/*
	 * admin888 <doan.hut@gmail.com>
	 * Description : dùng chung cho action
	 */
	public function init() {
		
		$auth = Zend_Auth::getInstance ();
		if ($auth->hasIdentity ()) {
			$data = $auth->getIdentity ();
			$this->view->name = $data->name;
			$this->view->iddangnhap = $data->uid;
			$this->_uid = $data->uid;
			$cd = new Model_Caidat();
			$thongbao = $cd->getthongbao($data->uid);
			$this->view->thongbao = $thongbao;			
		
		}
		//phần lay out trên
		$this->view->today = $date = Zend_Date::now ();
		$reponse = $this->getResponse ();
		$reponse->insert('top', $this->view->render('index/top.phtml'));
		$this->view->title = " Thư nháp - Email Manager ";
	}
	/*
     * admin888 <doan.hut@gmail.com>
     * Description : check nếu chưa login thì chuyển về trang ngoài
     * Note hàm này mọi người có thể dung chung
     */
	public function preDispatch() {
		$auth = Zend_Auth::getInstance ();
		if (! $auth->hasIdentity ()) {
			if ($this->_request->getActionName () != 'login') {
				$this->_redirect ( 'login' );
			}
		}
	}	
	
	/**
	 *admin888 <doan.hut@gmail.com>
	 * Enter description :Lay thu nhap duoi dang list
	 */
	public function indexAction()
	{
	
		$gt = new Model_Thudagui();
		$params = $this->_getAllParams();
		if (isset($params['keytimkiem']) && $params['keytimkiem'] != ''){
			// tim kiem thu da gui
			$tukhoa = $this->_getParam('keytimkiem');
			$dulieu = $gt->getallthudaguitimkiem($this->_uid,0,$tukhoa);
		}else {
				$dulieu = $gt->getallthudagui($this->_uid,0); 
		}
		//echo "<pre>"; print_r($dulieu);
		// phan trang 
		$page = $this->_getParam('page',1); // bắt biến trên trang
		$paginator = Zend_Paginator::factory($dulieu); // gán mảng vào zend_paginator
		$paginator->setCurrentPageNumber($page); // chuyển tới trang
		$paginator->setItemCountPerPage(15); // số bản ghi trên 1 trang
		$this->view->paginator = $paginator; // view số trang 
		// end phân trang               
        $this->view->thudagui = $paginator;
		
		// lay thong tin gui mail cua user
		$guithu = new Model_Guithu ();
		$ch = $guithu->getthongtinguithu ( $this->_uid );
		$this->view->thonntincauhinh = $ch;
		
	}
	/**
	 *admin888 <doan.hut@gmail.com>
	 * Enter description : Xoa 1 thu thu nháp
	 */
	public function xoathudaguiAction()
	{
		$gt = new Model_Thudagui();
		$idt = $this->_getParam('idthu');
		$uid = $this->_getParam('uid');
		$xoa = $gt->xoathudagui($uid,$idt);// 
		//xoa fie tron thu muc 
		$arrlinkfile = $gt->getalllinkfile($idt);
		foreach ($arrlinkfile as $lik){
			$xoafilethumuc = $gt->xoafilecuathumuc($lik['link_file']);
		}
		$xoafile = $gt->xoafilekemtheothu($idt);// xoa trong db
		
		$this->getHelper('viewRenderer')->setNoRender(); // set khong su dung template
        $this->_helper->layout->disableLayout(); //disable layout
	}
	/**
	 * admin888 <doan.hut@gmail.com>
	 * Enter description Xoa thu nháp
	 */
	public function xoaallthudaguiAction()
	{
		$tg = new Model_Thudagui();
		$namgidt = $this->_getParam('idthu');
		$mangdl = explode(',', $namgidt);
		for ($i= 0 ; $i< count($mangdl);$i++){
			//xoa thu 
			$xoathu = $tg->xoathudagui($this->_uid,$mangdl[$i]);
			//xoa file 
			$arrlinkfile = $gt->getalllinkfile($mangdl[$i]);
			foreach ($arrlinkfile as $lik){
			$xoafilethumuc = $gt->xoafilecuathumuc($lik['link_file']);
		    }
		    // xoa trong bd
			$xoathu = $tg->xoafilekemtheothu($mangdl[$i]);
		}
		$this->getHelper('viewRenderer')->setNoRender(); // set khong su dung template
        $this->_helper->layout->disableLayout(); //disable layout
		
	}
	/**
	 * admin888 <pavent@gmail.com>
	 * Enter description : sua va send thu nhap
	 */
	public function suathunhapAction()
	{
		$guithu = new Model_Guithu ();
		$ch = $guithu->getthongtinguithu ( $this->_uid );
		$this->view->thonntincauhinh = $ch;
		// lây thong tin lien he
		$lh = new Model_Lienhe ();
		$datalh = $lh->getalllienhesudung ( $this->_uid);
		$this->view->lienhedata = $datalh;	
		// lấy thuông tin về thư nháp 
		$tn = new Model_thunhap();
		$idthunhap = $this->_getParam('idthu');
		
		$thunhnhapsua = $tn->getthunhap($idthunhap);
		$this->view->thunhap = $thunhnhapsua;

		//get file hien thi 
		$arrfile = $tn->getfiletheothu($idthunhap);
		foreach ($arrfile as $key=>$value){
			$pathinfo = pathinfo($value['link_file']);
			$arrfile[$key]['tenhinh'] = $pathinfo['basename'];
			
		}
		
		//echo "<pre>"; print_r($arrfile);
		$this->view->filethunhap = $arrfile;		
			
	}
	/**
	 * admin888 <doan.hut@gmail.com>
	 * Enter description : xoa file trong db
	 */
	public function xoafiledinhkemAction()
	{
		$idfile = $this->_getParam('idflie');
		$tn = new Model_thunhap();
		$dulieu = $tn->getfile($idfile);
		@unlink($dulieu['link_file']);
		$tn->xoafiletrongdb($idfile);
		// dem lai so file
		$sofile = $this->_getParam('tongfile') -1;
		$idtn = $this->_getParam('idthu');
		$tn->demlaisofile($sofile,$idtn);
		$this->getHelper('viewRenderer')->setNoRender(); // set khong su dung template
        $this->_helper->layout->disableLayout(); //disable layout

	}
	/**
	 * admin888 <pavent@gmail.com>
	 * Enter description :them file voa db
	 */
	public function addfilethunhapdbAction()
	{
		$data = $this->_getAllParams();
		$tn =new Model_thunhap();
		$addfile = $tn->addfilethunhap($data,$this->_uid);
		$tn->demlaisofile($data['tongfile'],$data['idthunhap']);
		echo $addfile;exit();
		$this->getHelper('viewRenderer')->setNoRender(); // set khong su dung template
        $this->_helper->layout->disableLayout(); //disable layout
	}
	/**
	 * admin888 <doan.hut@gmail.com>
	 * Enter description : Send mail khong sử dụng từ khóa
	 * @param unknown_type $data
	 */
	public function senmailnotkeywork($data){
	
		$gt = new Model_Guithu();
		$ts = new Model_Caidat();
		$thongso = $ts->getthongsotheoid($this->_uid);
		$callemal = $gt->loginsmtp($this->_uid);
		
        Zend_Mail::setDefaultTransport ($callemal);
        Zend_Mail::setDefaultFrom($thongso['user_name_email']);//sét mặc dịnh người gửi thư
        Zend_Mail::setDefaultReplyTo($thongso['user_name_email']);//set mặc định người nhận mail phản hồi
        $mail = new Zend_Mail ( 'UTF-8' );
        $mail->setBodyHtml($data['noidung_thu_soan']); // nội dung email 
 // đếm số nguoi cân gủi và gưi mail
         //trường hợp 1 khi người dùng chọn mail từ danh sach liên hệ hoặc tìm kiếm  liên hệ
         if ($data['arr_email'] != '0'){
	         $mangdiachi = explode(',', $data['arr_email']) ;
	         $mangthu = count($mangdiachi);
	         $songuoi = $mangthu -1;
	         for($i=0; $i< $songuoi; $i++){
	         	//echo $mangdiachi[$i]; die();
	         	$mail->addTo($mangdiachi[$i]); 
	         }
         }else if($data['show_nguoinhan'] != ''){
         	 //trường hợp 2 khi người dùng nhập vào dịa chỉ email
         	 $mangdiachi = explode(',', $data['show_nguoinhan']) ;
	         $mangthu = count($mangdiachi);
	         if($mangthu != 1){
	        	 $songuoi = $mangthu -1;
	         }else{
	         	$songuoi = $mangthu;
	         }
	         for($i=0; $i< $songuoi; $i++){
	         	$mail->addTo($mangdiachi[$i]);
	         }         	 
         }
  // cc email
         if ($data['cc_'] != ''){ 
             $mangdiachi = explode(',', $data['cc_']) ;
	         $mangthu = count($mangdiachi);
	         if($mangthu != 1){
	        	 $songuoi = $mangthu -1;
	         }else{
	         	$songuoi = $mangthu;
	         }
	         for($i=0; $i< $songuoi; $i++){
	         //$mail->addTo ($mangdiachi[$i]);
	         	$mail->addCc($mangdiachi[$i]); // là 1 bản sao mà người nhận email sẽ thấy
	         }         	
         
         }
    //Bcc Email
		 if ($data['bcc_'] != ''){ 
             $mangdiachi = explode(',', $data['bcc_']) ;
	         $mangthu = count($mangdiachi);
	         if($mangthu != 1){
	        	 $songuoi = $mangthu -1;
	         }else{
	         	$songuoi = $mangthu;
	         }
	         for($i=0; $i< $songuoi; $i++){
	         	$mail->addBcc($mangdiachi[$i]); // là gủi bản sao email mà người nhận sẽ không thấy
	         }         	
         
         }
     // tập tin đính kèm
       	 if ($data['tong_file'] !=''){
	       if (isset($data['file'])){
	       	 	$linkfile =  $data['file'];
		       	$tongfile = count($linkfile);
				for ($i= 0 ; $i< $tongfile;$i++){
			        $pathinfo = pathinfo($linkfile[$i]); // tach roi ca phan tu
			        $myImage = file_get_contents($linkfile[$i]);// cho vao duong dan hinh va bien no thanh chuỗi thập nhị phân
					$at = new Zend_Mime_Part($myImage);//khoi tao Zend_Mime_Part và truyền vào chuỗi thập nhị phân
					//$at->type        = 'image/gif';
					$at->disposition = Zend_Mime::DISPOSITION_INLINE;
					$at->encoding    = Zend_Mime::ENCODING_BASE64;
					$at->filename    = $pathinfo['basename']; // lay ten file  hien thi
					$mail->addAttachment($at);
				}
	        }
       	}
       //chủ đề cảu thư	
         $mail->setSubject ($data['chu_de']);

       //set thư gửi từ  
         $mail->setFrom ($thongso['user_name_email']);
         $ketnoi = $mail->send();
         Zend_Mail::clearDefaultFrom(); //xoa bo thuoc tinh set defaul from 
		 Zend_Mail::clearDefaultReplyTo();// xoa bo thuoc tinh set defaul tra loi thu replyto 
	}
	/**
	 * admin888 <doan.hut@gmail.com>
	 * Enter description : Send mail có từ khóa
	 * @param unknown_type $conten
	 * @param unknown_type $data
	 * @param unknown_type $nguoinhan
	 */
 	public function sendmailcotukhoa($conten,$nguoinhan,$data){
		$gt = new Model_Guithu();
		$ts = new Model_Caidat();
		$thongso = $ts->getthongsotheoid($this->_uid);
		$callemal = $gt->loginsmtp($this->_uid);
		
        Zend_Mail::setDefaultTransport ($callemal);
        Zend_Mail::setDefaultFrom($thongso['user_name_email']);//sét mặc dịnh người gửi thư
        Zend_Mail::setDefaultReplyTo($thongso['user_name_email']);//set mặc định người nhận mail phản hồi
        $mail = new Zend_Mail ( 'UTF-8' );
        $mail->setBodyHtml($conten); // nội dung email 
        $mail->addTo($nguoinhan);
     // tập tin đính kèm
       	 if ($data['tong_file'] !=''){
	       if (isset($data['file'])){
	       	 	$linkfile =  $data['file'];
		       	$tongfile = count($linkfile);
				for ($i= 0 ; $i< $tongfile;$i++){
			        $pathinfo = pathinfo($linkfile[$i]); // tach roi ca phan tu
			        $myImage = file_get_contents($linkfile[$i]);// cho vao duong dan hinh va bien no thanh chuỗi thập nhị phân
					$at = new Zend_Mime_Part($myImage);//khoi tao Zend_Mime_Part và truyền vào chuỗi thập nhị phân
					//$at->type        = 'image/gif';
					$at->disposition = Zend_Mime::DISPOSITION_INLINE;
					$at->encoding    = Zend_Mime::ENCODING_BASE64;
					$at->filename    = $pathinfo['basename']; // lay ten file  hien thi
					$mail->addAttachment($at);
				}
	        }
       	}
       //chủ đề cảu thư	
         $mail->setSubject ($data['chu_de']);

       //set thư gửi từ  
         $mail->setFrom ($thongso['user_name_email']);
         $ketnoi = $mail->send();
         Zend_Mail::clearDefaultFrom(); //xoa bo thuoc tinh set defaul from 
		 Zend_Mail::clearDefaultReplyTo();// xoa bo thuoc tinh set defaul tra loi thu replyto         		 		
 	
 	}
	/**
	 * 
	 *admin888 <doan.hut@gmail.com>
	 * Enter description : Bat biến và gửi thư 
	 */
	public function sendmailAction()
	{
		$guithu = new Model_Guithu();
		$lh     = new Model_Lienhe();
		$tkhoa  = new Model_Tukhoa();
		$tn= new Model_thunhap();
		$data = $this->_getAllParams();	
		$luunhap = $data['luunhap'];
		//kiểm tra xem Params luunhap là 1 thì sẽ lưu nháp  
		if ($luunhap == 1){
			$luunhap = $tn->updatethunhap($this->_uid,$data);//update luu nhap
			
				$this->_redirect('thunhap');

		}else{
				// Kiểm tra sự tồn tại trong nội dung thư có từ khóa hay không 
			if ($data ['chontukhoa'] == 1) {
				$conten = $data ['noidung_thu_soan'];
				$tukhoa = $data ['idtukhoa'];
				$idlienhe = $data ['arr_idlh'];
				//kiểm tra xem trong chuỗi có  key work hay không 
				$tk = explode ( ',', $tukhoa );
				$tongtukhoa = count ( $tk );
				for($i = 0; $i < $tongtukhoa; $i ++) {
					$iskeywork = $guithu->checkkeywork ( $conten, $tk [$i] );
				
				}
				// send mai có trộn mail vói conten 
				if ($iskeywork){
					
					 $mangdiachi = explode(',', $data['arr_email']) ;
			         $mangthu = count($mangdiachi);
			         $songuoi = $mangthu -1;
			         for($i=0; $i< $songuoi; $i++){
			         	$conten_final = $guithu->trontukhoavoilienhe($this->_uid,$tukhoa,$mangdiachi[$i],$conten);
			         	// gửi mail khi đã có từ khóa
			         	$this->sendmailcotukhoa($conten_final, $mangdiachi[$i], $data) ;
			         	//echo $conten_final ;
			         }
						
					
				} 
			}else{
				// send mail khong sư dung tư khóa
				$this->senmailnotkeywork($data);	
			} 
			
			// Thực hiện lưu thư vào db 
			//thự hiện lưu thư vào bang
				$luthu = $tn->chuyenthunhapquadagui($this->_uid,$data);
				// thực hiện lưu file đính kèm  đã gửi
				if ($data['tong_file'] != 0) {
					
					$updatethontinfile = $tn->udateloaifile($this->_uid,$data);
				}
				$this->_redirect('thudagui'); 
			
		}

		// Disable playoaut
		$this->getHelper('viewRenderer')->setNoRender(); // set khong su dung template
        $this->_helper->layout->disableLayout(); //disable layout
		
		
	}

}	

